﻿using System.Collections.Generic;

namespace TfsGiggle.Core.Parsers
{
    public interface IParser
    {
        /// <summary>
        /// Parse sourceCodeContent and return members
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="sourceCodeContent"></param>
        /// <returns></returns>
        void Parse(string fileName, string sourceCodeContent);

        /// <summary>
        /// Whats your name
        /// </summary>
        string Name { get; }

        /// <summary>
        /// Usings
        /// </summary>
        List<string> UsingDeclarations { get; }

        /// <summary>
        /// Classes
        /// </summary>
        List<string> ClassDeclarations { get; }

        /// <summary>
        /// Interfaces
        /// </summary>
        List<string> InterfaceDeclarations { get; }

        /// <summary>
        /// Methods
        /// </summary>
        List<string> MethodDeclarations { get; }
    }
}